Dynomotion

Group: DynoMotion Message: 92 From: ccdg@optusnet.com.au Date: 1/2/2010
Subject: Bubble Diagram?
Hi

Is there a graphical representation of how each object interacts with each other for the KFLOP. Old school term 'bubble diagram'.

TIA

derekj308
Group: DynoMotion Message: 93 From: TK Date: 1/3/2010
Subject: Re: Bubble Diagram?

Does this help?

 

http://www.dynomotion.com/Help/SchematicsKFLOP/KFLOPFunctionalDiagram.htm

 

TK

 

 

Group: DynoMotion Message: 95 From: ccdg@optusnet.com.au Date: 1/4/2010
Subject: Re: Bubble Diagram?
Thanks Tom

I did actually find that diagram after I had posted but I was wanting to focus on the software objects. I have designed a 3a PKM and began building it so I looking for controller options and trying to assess what level of programming I would have to do to implement the inverse kinematics equations I have developed. I did see the programs you have written for your PKM '3 rod' solution so I am hopeful that I will be able to also integrate my PKM kinematic equations to your controller. It sounds overly simplified but is it as simple as swapping my kins for yours? In my application a simple point to point linear movement would need to be broken up into hundreds (if not thousands) of discrete points so as to ensure the locus of the point to point movement was, within a user defined tolerance, a straight line movement and a velocity profile could be calculated for each actuator to ensure the desired velocity of the control point was maintained. Like wise for arc movements. I did an example of approx 500mm line movement using 1mm increments and the result was not too bad. For a rapid move I might go looser and for a feed move I would go tighter. I want to be able to be confident that I can achieve accurate feed rates with my PKM, not just accurate positioning. Any help in highlighting the areas of your software where this is done would be appreciated.

I'm not a programmer but I have a very basic knowledge of C (1 course at uni during B.Eng degree) and I think it is within my grasp to learn what I require to integrate into your program.

I downloaded a program called 'Code Visualizer' which has helped a little but it has shown just how complex motion control software is (for us noobs anyway). I am going have to dig out my second year control systems notes and assignments and start brushing up on control theory so I can better understand your software.

derekj308
Group: DynoMotion Message: 96 From: TK Date: 1/9/2010
Subject: Re: Bubble Diagram?

Derek,

 

Try this:

 

http://www.dynomotion.com/Help/LibrariesFlowDiagram.PNG

 

But yes, it should be almost as simple as swapping your kinematics for the “3Rod” equations.  You will need MS Visual Studio 2008 Standard edition to compile and make changes.  Place any file called Kinematics.txt into the \KMotion\Data directory to cause the CKinematics3Rod class to be used by the system instead of the standard base class CKinematics.

 

In the case of the 3Rod (3 linear actuators) the inverse kinematics are very simple to compute.  See the function shown below from file Kinematics3Rod.cpp:

 

int CKinematics3Rod::TransformCADtoActuators(double x, double y, double z, double a, double b, double c, double *Acts)

{

      // find lengths of each actuator

 

      GeoCorrect(x,y,z,&x,&y,&z);

 

      double r0 = sqrt(sqr(x-Act0Center.x) + sqr(y-Act0Center.y) + sqr(z-Act0Center.z)) - Act0Off;

      double r1 = sqrt(sqr(x-Act1Center.x) + sqr(y-Act1Center.y) + sqr(z-Act1Center.z)) - Act1Off;

      double r2 = sqrt(sqr(x-Act2Center.x) + sqr(y-Act2Center.y) + sqr(z-Act2Center.z)) - Act2Off;

 

      Acts[0] = r0*m_MotionParams.CountsPerInchX;

      Acts[1] = r1*m_MotionParams.CountsPerInchY;

      Acts[2] = r2*m_MotionParams.CountsPerInchZ;

 

      Acts[3] = a*m_MotionParams.CountsPerInchA;

      Acts[4] = b*m_MotionParams.CountsPerInchB;

      Acts[5] = c*m_MotionParams.CountsPerInchC;

 

      return 0;

}

 

The forward Kinematics are more difficult to compute so they are automatically computed!  (numerically using the inverse Kinematics in the function):

 

int CKinematics3Rod::TransformActuatorstoCAD(double *Acts, double *xr, double *yr, double *zr, double *ar, double *br, double *cr)

 

 

There is a parameter that will set the maximum length along a path where a linear relationship between CAD and Actuator space may be assumed.

 

      m_MotionParams.MaxLinearLength = 0.25;  // limit the segment lengs for nonlinear systems

 

 

I think a powerful feature of our Trajectory planner is to handle planning through many tiny segments each with different velocity and acceleration constraints.

 

Regards,

TK

 

 

 

Group: DynoMotion Message: 98 From: ccdg@optusnet.com.au Date: 1/9/2010
Subject: Re: Bubble Diagram?
Thanks Tom

That's what I needed.

Cheers

Derek